home *** CD-ROM | disk | FTP | other *** search
/ SGI Freeware 1999 August / SGI Freeware 1999 August.iso / dist / fw_qt.idb / usr / freeware / include / Qt / qdatastream.h.z / qdatastream.h
Encoding:
C/C++ Source or Header  |  1998-10-28  |  3.7 KB  |  132 lines

  1. /****************************************************************************
  2. ** $Id: qdatastream.h,v 2.7 1998/07/03 00:09:43 hanord Exp $
  3. **
  4. ** Definition of QDataStream class
  5. **
  6. ** Created : 930831
  7. **
  8. ** Copyright (C) 1992-1998 Troll Tech AS.  All rights reserved.
  9. **
  10. ** This file is part of Qt Free Edition, version 1.40.
  11. **
  12. ** See the file LICENSE included in the distribution for the usage
  13. ** and distribution terms, or http://www.troll.no/free-license.html.
  14. **
  15. ** IMPORTANT NOTE: You may NOT copy this file or any part of it into
  16. ** your own programs or libraries.
  17. **
  18. ** Please see http://www.troll.no/pricing.html for information about 
  19. ** Qt Professional Edition, which is this same library but with a
  20. ** license which allows creation of commercial/proprietary software.
  21. **
  22. *****************************************************************************/
  23.  
  24. #ifndef QDATASTREAM_H
  25. #define QDATASTREAM_H
  26.  
  27. #ifndef QT_H
  28. #include "qiodevice.h"
  29. #include "qstring.h"
  30. #endif // QT_H
  31.  
  32.  
  33. class QDataStream                // data stream class
  34. {
  35. public:
  36.     QDataStream();
  37.     QDataStream( QIODevice * );
  38.     QDataStream( QByteArray, int mode );
  39.     virtual ~QDataStream();
  40.  
  41.     QIODevice    *device() const;
  42.     void     setDevice( QIODevice * );
  43.     void     unsetDevice();
  44.  
  45.     bool     eof() const;
  46.  
  47.     enum ByteOrder { BigEndian, LittleEndian };
  48.     int         byteOrder()    const;
  49.     void     setByteOrder( int );
  50.  
  51.     bool     isPrintableData() const;
  52.     void     setPrintableData( bool );
  53.  
  54.     QDataStream &operator>>( Q_INT8 &i );
  55.     QDataStream &operator>>( Q_UINT8 &i );
  56.     QDataStream &operator>>( Q_INT16 &i );
  57.     QDataStream &operator>>( Q_UINT16 &i );
  58.     QDataStream &operator>>( Q_INT32 &i );
  59.     QDataStream &operator>>( Q_UINT32 &i );
  60.     QDataStream &operator>>( float &f );
  61.     QDataStream &operator>>( double &f );
  62.     QDataStream &operator>>( char *&str );
  63.  
  64.     QDataStream &operator<<( Q_INT8 i );
  65.     QDataStream &operator<<( Q_UINT8 i );
  66.     QDataStream &operator<<( Q_INT16 i );
  67.     QDataStream &operator<<( Q_UINT16 i );
  68.     QDataStream &operator<<( Q_INT32 i );
  69.     QDataStream &operator<<( Q_UINT32 i );
  70.     QDataStream &operator<<( float f );
  71.     QDataStream &operator<<( double f );
  72.     QDataStream &operator<<( const char *str );
  73.  
  74.     QDataStream &readBytes( char *&, uint &len );
  75.     QDataStream &readRawBytes( char *, uint len );
  76.  
  77.     QDataStream &writeBytes( const char *, uint len );
  78.     QDataStream &writeRawBytes( const char *, uint len );
  79.  
  80. private:
  81.     QIODevice    *dev;
  82.     bool     owndev;
  83.     int         byteorder;
  84.     bool     printable;
  85.     bool     noswap;
  86.  
  87. private:    // Disabled copy constructor and operator=
  88.     QDataStream( const QDataStream & );
  89.     QDataStream &operator=( const QDataStream & );
  90. };
  91.  
  92.  
  93. /*****************************************************************************
  94.   QDataStream inline functions
  95.  *****************************************************************************/
  96.  
  97. inline QIODevice *QDataStream::device() const
  98. { return dev; }
  99.  
  100. inline bool QDataStream::eof() const
  101. { return dev ? dev->atEnd() : TRUE; }
  102.  
  103. inline int QDataStream::byteOrder() const
  104. { return byteorder; }
  105.  
  106. inline bool QDataStream::isPrintableData() const
  107. { return printable; }
  108.  
  109. inline void QDataStream::setPrintableData( bool p )
  110. { printable = p; }
  111.  
  112. inline QDataStream &QDataStream::operator>>( Q_UINT8 &i )
  113. { return *this >> (Q_INT8&)i; }
  114.  
  115. inline QDataStream &QDataStream::operator>>( Q_UINT16 &i )
  116. { return *this >> (Q_INT16&)i; }
  117.  
  118. inline QDataStream &QDataStream::operator>>( Q_UINT32 &i )
  119. { return *this >> (Q_INT32&)i; }
  120.  
  121. inline QDataStream &QDataStream::operator<<( Q_UINT8 i )
  122. { return *this << (Q_INT8)i; }
  123.  
  124. inline QDataStream &QDataStream::operator<<( Q_UINT16 i )
  125. { return *this << (Q_INT16)i; }
  126.  
  127. inline QDataStream &QDataStream::operator<<( Q_UINT32 i )
  128. { return *this << (Q_INT32)i; }
  129.  
  130.  
  131. #endif // QDATASTREAM_H
  132.